From bec11c352d53e50cc9b4ee976071f08b7cbe4a80 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Wed, 8 Sep 2010 17:06:07 +0200 Subject: [PATCH] toolitemgroup: Connect to draw signal --- gtk/gtktoolitemgroup.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/gtk/gtktoolitemgroup.c b/gtk/gtktoolitemgroup.c index f6fece1251..b38b994205 100644 --- a/gtk/gtktoolitemgroup.c +++ b/gtk/gtktoolitemgroup.c @@ -260,36 +260,36 @@ gtk_tool_item_group_tool_shell_init (GtkToolShellIface *iface) } static gboolean -gtk_tool_item_group_header_expose_event_cb (GtkWidget *widget, - GdkEventExpose *event, - gpointer data) +gtk_tool_item_group_header_draw_cb (GtkWidget *widget, + cairo_t *cr, + gpointer data) { - GtkAllocation allocation; GtkToolItemGroup *group = GTK_TOOL_ITEM_GROUP (data); GtkToolItemGroupPrivate* priv = group->priv; GtkExpanderStyle expander_style; GtkOrientation orientation; - gint x, y; + gint x, y, width, height; GtkTextDirection direction; orientation = gtk_tool_shell_get_orientation (GTK_TOOL_SHELL (group)); expander_style = priv->expander_style; direction = gtk_widget_get_direction (widget); + width = gtk_widget_get_allocated_width (widget); + height = gtk_widget_get_allocated_height (widget); - gtk_widget_get_allocation (widget, &allocation); if (GTK_ORIENTATION_VERTICAL == orientation) { if (GTK_TEXT_DIR_RTL == direction) - x = allocation.x + allocation.width - priv->expander_size / 2; + x = width - priv->expander_size / 2; else - x = allocation.x + priv->expander_size / 2; + x = priv->expander_size / 2; - y = allocation.y + allocation.height / 2; + y = height / 2; } else { - x = allocation.x + allocation.width / 2; - y = allocation.y + priv->expander_size / 2; + x = width / 2; + y = priv->expander_size / 2; /* Unfortunatly gtk_paint_expander() doesn't support rotated drawing * modes. Luckily the following shady arithmetics produce the desired @@ -297,10 +297,10 @@ gtk_tool_item_group_header_expose_event_cb (GtkWidget *widget, expander_style = GTK_EXPANDER_EXPANDED - expander_style; } - gtk_paint_expander (gtk_widget_get_style (widget), - gtk_widget_get_window (widget), + gtk_cairo_paint_expander (gtk_widget_get_style (widget), + cr, gtk_widget_get_state (priv->header), - &event->area, GTK_WIDGET (group), + GTK_WIDGET (group), "tool-palette-header", x, y, expander_style); @@ -409,8 +409,8 @@ gtk_tool_item_group_init (GtkToolItemGroup *group) gtk_tool_item_group_header_adjust_style (group); - g_signal_connect_after (alignment, "expose-event", - G_CALLBACK (gtk_tool_item_group_header_expose_event_cb), + g_signal_connect_after (alignment, "draw", + G_CALLBACK (gtk_tool_item_group_header_draw_cb), group); g_signal_connect_after (alignment, "size-request", G_CALLBACK (gtk_tool_item_group_header_size_request_cb), -- 2.30.2